Stored Procedure দিয়ে CRUD অপারেশন করা

Microsoft Technologies - এন্টিটি ফ্রেমওয়র্ক (Entity Framework) Stored Procedure এবং View ব্যবহার করা |
194
194

Stored Procedures হল প্রি-কম্পাইলড SQL কুয়েরি বা স্ক্রিপ্ট, যা ডেটাবেসে সংরক্ষিত থাকে এবং একাধিকবার চালানো যেতে পারে। Entity Framework (EF) ব্যবহার করে আপনি সহজেই Stored Procedure দিয়ে CRUD (Create, Read, Update, Delete) অপারেশন ইমপ্লিমেন্ট করতে পারেন। EF আপনাকে এই Stored Procedure গুলিকে কল করতে এবং তাদের মাধ্যমে ডেটাবেসে পরিবর্তন করতে সহায়তা করে।

এই টিউটোরিয়ালে আমরা দেখব কিভাবে EF ব্যবহার করে Stored Procedure এর মাধ্যমে CRUD অপারেশন করা যায়।


Stored Procedure দিয়ে CRUD অপারেশন চালানোর জন্য প্রাথমিক ধাপ

EF তে Stored Procedure ব্যবহার করতে হলে প্রথমে আপনাকে কিছু প্রাথমিক কাজ করতে হবে:

  1. Stored Procedure তৈরি করা: আপনার ডেটাবেসে Stored Procedure তৈরি করুন।
  2. DbContext ক্লাসে Stored Procedure এর জন্য মেথড সংজ্ঞায়িত করা: EF তে Stored Procedure কল করার জন্য DbSet বা DbContext ক্লাসে কাস্টম মেথড তৈরি করতে হয়।
  3. Stored Procedure কল করা: EF এর মাধ্যমে SQL কুয়েরি ব্যবহার করে Stored Procedure কল করুন।

1. Stored Procedure তৈরি করা

প্রথমেই আপনাকে ডেটাবেসে একটি Stored Procedure তৈরি করতে হবে। নিচে একটি সাধারণ Stored Procedure এর উদাহরণ দেয়া হল, যা Employee টেবিলের মধ্যে নতুন ডেটা ইনসার্ট করবে:

CREATE PROCEDURE InsertEmployee
    @EmployeeName NVARCHAR(100),
    @EmployeeAge INT
AS
BEGIN
    INSERT INTO Employees (Name, Age) 
    VALUES (@EmployeeName, @EmployeeAge)
END

এখানে, InsertEmployee নামে একটি Stored Procedure তৈরি করা হয়েছে, যা Employees টেবিলে নতুন কর্মী যোগ করবে।


2. DbContext ক্লাসে Stored Procedure এর জন্য মেথড সংজ্ঞায়িত করা

এখন আপনার EF DbContext ক্লাসে Stored Procedure এর মাধ্যমে অপারেশন চালানোর জন্য মেথড তৈরি করতে হবে।

Create (Insert) Operation:

public class ApplicationDbContext : DbContext
{
    public DbSet<Employee> Employees { get; set; }
    
    // Create (Insert) operation via Stored Procedure
    public void InsertEmployee(string name, int age)
    {
        var nameParam = new SqlParameter("@EmployeeName", name);
        var ageParam = new SqlParameter("@EmployeeAge", age);
        
        // Execute the stored procedure
        this.Database.ExecuteSqlRaw("EXEC InsertEmployee @EmployeeName, @EmployeeAge", nameParam, ageParam);
    }
}

এখানে:

  • InsertEmployee মেথডে আমরা SqlParameter ব্যবহার করে Stored Procedure এর ইনপুট প্যারামিটার পাঠাচ্ছি।
  • ExecuteSqlRaw মেথড ব্যবহার করে Stored Procedure কল করা হয়েছে।

Read (Select) Operation:

আপনি Stored Procedure ব্যবহার করে ডেটা রিট্রাইভ করতে পারেন, যেমন:

public class ApplicationDbContext : DbContext
{
    public DbSet<Employee> Employees { get; set; }

    // Read (Select) operation via Stored Procedure
    public List<Employee> GetEmployees()
    {
        return this.Employees.FromSqlRaw("EXEC GetAllEmployees").ToList();
    }
}

এখানে:

  • FromSqlRaw মেথড ব্যবহার করে আমরা GetAllEmployees Stored Procedure কল করে Employee টেবিলের সমস্ত ডেটা রিট্রাইভ করছি।

3. Update Operation

Stored Procedure ব্যবহার করে ডেটাবেসে আপডেট অপারেশন চালানোও সম্ভব। নিচে একটি Stored Procedure এবং সেটি EF এর মাধ্যমে কল করার উদাহরণ:

Stored Procedure:

CREATE PROCEDURE UpdateEmployee
    @EmployeeId INT,
    @EmployeeName NVARCHAR(100),
    @EmployeeAge INT
AS
BEGIN
    UPDATE Employees 
    SET Name = @EmployeeName, Age = @EmployeeAge
    WHERE EmployeeId = @EmployeeId
END

C# Code for Update:

public class ApplicationDbContext : DbContext
{
    public DbSet<Employee> Employees { get; set; }

    // Update operation via Stored Procedure
    public void UpdateEmployee(int employeeId, string name, int age)
    {
        var idParam = new SqlParameter("@EmployeeId", employeeId);
        var nameParam = new SqlParameter("@EmployeeName", name);
        var ageParam = new SqlParameter("@EmployeeAge", age);
        
        // Execute the stored procedure
        this.Database.ExecuteSqlRaw("EXEC UpdateEmployee @EmployeeId, @EmployeeName, @EmployeeAge", idParam, nameParam, ageParam);
    }
}

এখানে:

  • UpdateEmployee মেথডে আমরা তিনটি প্যারামিটার পাঠাচ্ছি, এবং ExecuteSqlRaw ব্যবহার করে Stored Procedure কল করছি।

4. Delete Operation

Delete অপারেশনের জন্যও আপনি Stored Procedure ব্যবহার করতে পারেন। নিচে একটি DeleteEmployee Stored Procedure এবং এটি EF এর মাধ্যমে কল করার উদাহরণ দেয়া হল:

Stored Procedure:

CREATE PROCEDURE DeleteEmployee
    @EmployeeId INT
AS
BEGIN
    DELETE FROM Employees WHERE EmployeeId = @EmployeeId
END

C# Code for Delete:

public class ApplicationDbContext : DbContext
{
    public DbSet<Employee> Employees { get; set; }

    // Delete operation via Stored Procedure
    public void DeleteEmployee(int employeeId)
    {
        var idParam = new SqlParameter("@EmployeeId", employeeId);
        
        // Execute the stored procedure
        this.Database.ExecuteSqlRaw("EXEC DeleteEmployee @EmployeeId", idParam);
    }
}

এখানে:

  • DeleteEmployee মেথডে আমরা EmployeeId প্যারামিটার পাঠাচ্ছি এবং ExecuteSqlRaw ব্যবহার করে Stored Procedure কল করছি, যাতে নির্দিষ্ট কর্মী ডেটাবেস থেকে মুছে ফেলা হয়।

Stored Procedure এর সাথে Parameters ব্যবহৃত করা

Stored Procedure কল করার সময় আপনি SQL প্যারামিটার ব্যবহার করতে পারেন, যেগুলি SQL ইনজেকশন প্রতিরোধে সহায়ক। এর মাধ্যমে আপনি ডায়নামিক ডেটা নিয়ে কাজ করতে পারেন, যেমন:

var parameter = new SqlParameter("@EmployeeId", SqlDbType.Int) { Value = employeeId };

এইভাবে, আপনি প্যারামিটারাইজড কুয়েরি চালিয়ে SQL ইনজেকশন এড়াতে পারবেন।


সারাংশ

  • CRUD (Create, Read, Update, Delete) অপারেশনগুলি EF এর মাধ্যমে Stored Procedure ব্যবহার করে সহজে ইমপ্লিমেন্ট করা যায়।
  • ExecuteSqlRaw এবং FromSqlRaw মেথড ব্যবহার করে Stored Procedure কল করা হয়।
  • SqlParameter ব্যবহার করে SQL ইনজেকশন থেকে নিরাপদে ডেটা পাঠানো যায়।
  • Stored Procedure গুলি ডেটাবেসের মধ্যে রাখা যায়, যা একাধিক অ্যাপ্লিকেশনে পুনঃব্যবহার করা যায় এবং ডেটাবেসের পারফরম্যান্স বাড়াতে সহায়তা করে।

Stored Procedure দিয়ে CRUD অপারেশন ব্যবহার করলে ডেটাবেসের নিরাপত্তা, পারফরম্যান্স এবং রিয়ুজেবিলিটি বাড়াতে সাহায্য করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion